package service

import (
	"context"
	"github.com/star-find-cloud/star-chat/image/domain"
	"github.com/star-find-cloud/star-chat/image/repo"
	"github.com/star-find-cloud/star-chat/internal/oss"
)

type ImageOssServiceImpl struct {
	repo repo.ImageRepo
	oss  oss.OSS
}

func NewImageOssService(repo repo.ImageRepo, oss oss.OSS) *ImageOssServiceImpl {
	return &ImageOssServiceImpl{
		repo: repo,
		oss:  oss,
	}
}

func (s *ImageOssServiceImpl) Create(ctx context.Context, image *domain.Image) (int64, error) {
	//TODO implement me
	panic("implement me")
}

func (s *ImageOssServiceImpl) CreateMany(ctx context.Context, images []*domain.Image) (int64, error) {
	//TODO implement me
	panic("implement me")
}

func (s *ImageOssServiceImpl) Get(ctx context.Context, id int64) (*domain.Image, error) {
	//TODO implement me
	panic("implement me")
}

func (s *ImageOssServiceImpl) GetMany(ctx context.Context, ids []int64) ([]*domain.Image, error) {
	//TODO implement me
	panic("implement me")
}

func (s *ImageOssServiceImpl) GetUrl(ctx context.Context, id int64) (string, error) {
	//TODO implement me
	panic("implement me")
}

func (s *ImageOssServiceImpl) GetUrlMany(ctx context.Context, ids []int64) ([]string, error) {
	//TODO implement me
	panic("implement me")
}

func (s *ImageOssServiceImpl) Update(ctx context.Context, image *domain.Image) error {
	//TODO implement me
	panic("implement me")
}

func (s *ImageOssServiceImpl) UpdateMany(ctx context.Context, images []*domain.Image) error {
	//TODO implement me
	panic("implement me")
}

func (s *ImageOssServiceImpl) UpdateCompressedStatus(ctx context.Context, id int64) error {
	//TODO implement me
	panic("implement me")
}

func (s *ImageOssServiceImpl) Delete(ctx context.Context, id int64) error {
	//TODO implement me
	panic("implement me")
}

func (s *ImageOssServiceImpl) DeleteMany(ctx context.Context, ids []int64) error {
	//TODO implement me
	panic("implement me")
}

func (s *ImageOssServiceImpl) GetUploadPresignedURL(ctx context.Context, image *domain.Image) (string, error) {
	//TODO implement me
	panic("implement me")
}

func (s *ImageOssServiceImpl) GetDownloadPresignedURL(ctx context.Context, image *domain.Image) (string, error) {
	//TODO implement me
	panic("implement me")
}

func (s *ImageOssServiceImpl) GetDeletePresignedURL(ctx context.Context, image *domain.Image) (string, error) {
	//TODO implement me
	panic("implement me")
}
